iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
0
自我挑戰組

這些日子我學到的JavaScript 系列 第 7

這些日子我學到的JavaScript:Day07-函式3

  • 分享至 

  • xImage
  •  

回傳(return)的意義

函式可以透過 return 回傳函式運算完的結果,回傳的值可在函式外透過宣告變數來儲存;若函式不回傳值,則可省略 return。 當 return 執行時,解譯器會跳出該函式,所以如果 return 後面還有程式碼,則不會被執行。因此,用 return 回傳空值也具有「中止」程式碼的功能。

函式結合 return 的用法
在函式中使用 return,可以讓程式碼寫得較簡短,也可以拿來處理字串。只要直接讓函式代入參數,就能取代原本一行行的加減乘除。

例如下面這個名為 add 的函式,它會把傳入的兩個數字相加後並 return,所以下面的變數 result 會接收 add(10,40) 的結果,故 result 就會等於50。

function add(numOne,numTwo){
  return numOne + numTwo;
}
var result = add(10,40);
// result 為 50

函式間的傳遞
剛剛我們了解 return 的基本用法,那函式間如果需要互相傳遞各自運算出來的結果,要怎麼做呢?
先看一段比較簡單的程式碼:

// 設計一個含有參數的函式,用來回傳兩個數值相加的結果
function count(a, b) {
    return a + b; 
}
// 設計另一個函式,帶數字 3 跟 5 進去前一個函式計算總和,並用變數儲存回傳的值
function sum() {
  var total = count(3,5);
  console.log(total);
}
// 呼叫第二個函式,輸出變數 total 的值
sum();
// total 為 8

看完上面的範例,接下來我們試試看情境題:

function count(price){
  return addTax(price*0.6);
} //(2)(3)

function addTax(price){
  return price*1.2;
} //(4)

console.log(count(500)); //(1)

(1) 我們想要計算一件衣服的價格,所以呼叫 count 函式而衣服為 500 元。
(2) 在 count 函式中因為全館衣服打 6 折而先乘上 0.6。
(3) 但是因為要加收 20% 營業稅,所以把乘上 0.6 的價格再丟入 addTax 函式。
(4) 在 addTax 函式中因為要加收 20% 營業稅所以價格要乘上 1.2。(兩個函式中的 price 值是不一樣的,在 count 中指的是原價,在 addTax 中指得是打 6 折過後的價格)
(5) 等到 addTax 回傳結果後再回到 (1)。最後的售價為 360 元。


上一篇
這些日子我學到的JavaScript:Day06-函式2
下一篇
這些日子我學到的JavaScript:Day08-陣列
系列文
這些日子我學到的JavaScript 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言